/////////////////////////////////////////////////////
#ifndef __ITCCAUDIOINFO_H__
#define __ITCCAUDIOINFO_H__

// {671B6844-0AD3-4999-BD33-ECB0FE9B2A75}
static const GUID IID_ITCCVideoInfo = 
{ 0x671b6844, 0xad3, 0x4999, { 0xbd, 0x33, 0xec, 0xb0, 0xfe, 0x9b, 0x2a, 0x75 } };

struct VideoInfo
{
	int DemuxType;	// Formatter Type
	int FourCC;		// Codec Type
};

DECLARE_INTERFACE_(ITCCVideoInfo, IUnknown)
{
	STDMETHOD(GetVideoInfo)(VideoInfo *VInfo) PURE;
};

static const GUID IID_ITCCVideoBitrateInfo = 
{ 0x671b6844, 0xad3, 0x4999, { 0xbd, 0x33, 0xec, 0xb0, 0xfe, 0x9b, 0x2a, 0x76 } };

DECLARE_INTERFACE_(ITCCVideoBitrateInfo, IUnknown)
{
	STDMETHOD(GetVideoBitrateInfo)(int* VideoBitrate) PURE;		
};


// {C547A746-2673-4f1e-BFFC-1A3DEDD9EDAA}
static const GUID IID_ITCCAudioInfo = 
{ 0xc547a746, 0x2673, 0x4f1e, { 0xbf, 0xfc, 0x1a, 0x3d, 0xed, 0xd9, 0xed, 0xaa } };

struct AudioInfo
{
	int audioCodec;	// Audio Type
	int channel;	// Channel Number
	int bitrate;		// Bitrate
	int samplerate;		// Samplerate
};

DECLARE_INTERFACE_(ITCCAudioInfo, IUnknown)
{
	STDMETHOD(GetAudioInfo)(AudioInfo *AInfo) PURE;
};

#define AUDIO_ID_AAC 0
#define AUDIO_ID_MP3 1
#define AUDIO_ID_AMR 2
#define AUDIO_ID_AC3 3
#define AUDIO_ID_MP3HD 4
#define AUDIO_ID_MP2 5
#define AUDIO_ID_DTS 6
#define AUDIO_ID_QCELP 7
#define AUDIO_ID_AMRWBP 8
#define AUDIO_ID_WMA 9
#define AUDIO_ID_EVRC 10
#define AUDIO_ID_FLAC 11
#define AUDIO_ID_COOK 12
#define AUDIO_ID_G722 13
#define AUDIO_ID_G729 14
#define AUDIO_ID_APE 15
#define AUDIO_ID_WAV 16
#define AUDIO_ID_DRA 17
#define AUDIO_ID_VORBIS 18
#define AUDIO_ID_BSAC 19

// {80DCB7FD-AB38-4b9c-8B51-011F6F34DB29}
static const GUID IID_ITCCFLVVideoInfo = 
{ 0x80dcb7fd, 0xab38, 0x4b9c, { 0x8b, 0x51, 0x1, 0x1f, 0x6f, 0x34, 0xdb, 0x29 } };

DECLARE_INTERFACE_(ITCCFLVVideoInfo, IUnknown)
{
	STDMETHOD(GetVideoInfo)(VideoInfo *VInfo) PURE;
};

#endif
